var profiel = {};
profiel.bijwerken = function() {
    if (ajax.bezig) {
        return;
    }
    
    ajax.bezig = true;
    
    $('#ajaxLoader').show();
    $('.formulierveld,#profielopslaan,#profielannuleren').attr('disabled','disabled');    
    
    h_adres = $('#H_adres').prop('checked')?true:false;
    h_straat = $('#H_straat').length> 0?$('#H_straat').val():'';
    h_nummer = $('#H_nummer').length> 0?$('#H_nummer').val():'';
    h_bus = $('#H_bus').length> 0?$('#H_bus').val():'';
    h_gemeente = $('#H_gemeente').length> 0?$('#H_gemeente').val():'';
    h_postcode = $('#H_postcode').length> 0?$('#H_postcode').val():'';
    h_land = $('#H_land').length> 0?$('#H_land').val():'';
    
    
    d_adres = $('#D_adres').prop('checked')?true:false;
    d_straat = $('#D_straat').length> 0?$('#D_straat').val():'';
    d_nummer = $('#D_nummer').length> 0?$('#D_nummer').val():'';
    d_bus = $('#D_bus').length> 0?$('#D_bus').val():'';
    d_gemeente = $('#D_gemeente').length> 0?$('#D_gemeente').val():'';
    d_postcode = $('#D_postcode').length> 0?$('#D_postcode').val():'';
    d_land = $('#D_land').length> 0?$('#D_land').val():'';
    
    w_adres = $('#W_adres').prop('checked')?true:false;
    w_straat = $('#W_straat').length> 0?$('#W_straat').val():'';
    w_nummer = $('#W_nummer').length> 0?$('#W_nummer').val():'';
    w_bus = $('#W_bus').length> 0?$('#W_bus').val():'';
    w_gemeente = $('#W_gemeente').length> 0?$('#W_gemeente').val():'';
    w_postcode = $('#W_postcode').length> 0?$('#W_postcode').val():'';
    w_land = $('#W_land').length> 0?$('#W_land').val():'';
    
    w8w_huidig = $.trim($('#w8wHuidig').val());
    w8w_nieuw = $.trim($('#w8wNieuw').val());
    w8w_bevestig = $.trim($('#w8wBevestig').val());
    
    $('#w8wHuidig').val('');
    $('#w8wNieuw').val('');
    $('#w8wBevestig').val('');
    
    var fd = new FormData();
        fd.append('aanhef',$('#aanhef').find('input:checked').val());
        fd.append('naam',$('#naam').val());
        fd.append('voornaam',$('#voornaam').val());
        fd.append('initialen',$('#initialen').val());
        fd.append('geborenop',$('#geborenop').val());
        fd.append('email',$('#email').val());
        fd.append('mobiel',$('#mobiel').val());
        
        fd.append('h_adres',h_adres);
        fd.append('h_straat',h_straat);
        fd.append('h_nummer',h_nummer);
        fd.append('h_bus',h_bus);
        fd.append('h_postcode',h_postcode);
        fd.append('h_gemeente',h_gemeente);
        fd.append('h_land',h_land);
        fd.append('d_adres',d_adres);
        fd.append('d_straat',d_straat);
        fd.append('d_nummer',d_nummer);
        fd.append('d_bus',d_bus);
        fd.append('d_postcode',d_postcode);
        fd.append('d_gemeente',d_gemeente);
        fd.append('d_land',d_land);
        fd.append('w_adres',w_adres);
        fd.append('w_straat',w_straat);
        fd.append('w_nummer',w_nummer);
        fd.append('w_bus',w_bus);
        fd.append('w_postcode',w_postcode);
        fd.append('w_gemeente',w_gemeente);
        fd.append('w_land',w_land);
        fd.append('w8w_huidig',w8w_huidig);
        fd.append('w8w_nieuw',w8w_nieuw);
        fd.append('w8w_bevestig',w8w_bevestig);
        
        if ($('#fotoupload').val().length > 0) {
            var foto = $('#fotoupload')[0].files[0];
            fd.append('foto',foto);
        }

    ajax.oAjax = $.ajax({
        url: '/Profiel/Bijwerken/index/1',
        type: 'post',
        dataType: 'json',
        data: fd,
        processData: false,
        contentType: false,
        cache: false,
        success: profiel.succes,
        error: profiel.mislukt,
        timeout: ajax.timeout
    });
};

profiel.succes = function(data) {
    if (data.resultaat) {
        var html  = '<div class="alert alert-success alert-dismissable">';
            html += '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
            html += '<h4>Succes</h4>';
            if (data.boodschap) {
                html += data.boodschap;
            } else {
                html += '<p>Uw profiel werd met succes geupdate</p>';
            }
            html += '</div>';
            $('.formulierveld').attr('disabled','disabled');
            $('#profielopslaan,#profielannuleren').hide();
            $('#profielbewerken').show(); 
            
            if (data.foto) {
                var img = $('<img>').attr('src',data.foto);
                $('#profielFotoInhoud').html(img);
            }
            
    } else {
        var html  = '<div class="alert alert-warning alert-dismissable">';
            html += '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
            html += '<h4>Fout</h4>';
            html += '<a class="btn btn-primary formulierveld pull-right" href="#" id="profielReloadPage">Pagina opnieuw laden...</a>';
            if (data.boodschap) {
                html += data.boodschap;
            } else {
                html += '<p>Er heeft zich een fout voorgedaan tijdens het updaten van uw profiel</p>';
            }
            html += '</div>';
    } 
    $('#boodschap').html(html);    
    $('html,body').animate({scrollTop: 0},{duration: 500});
    $('#ajaxLoader').hide();
    $('#profielopslaan,#profielannuleren').removeAttr('disabled').hide();
    $('#profielbewerken').show();
    $('#fotoupload').val('');
    ajax.reset();
};

profiel.mislukt = function(jQXHR,jQMsg) {
    ajax.oAjax.abort();
    $('#ajaxLoader').hide();
    $('#profielopslaan,#profielannuleren').removeAttr('disabled').hide();
    $('#profielbewerken').show();
    ajax.reset();
};

$(document).ready(function(){
    $('#profielbewerken').bind({
        click: function() {
            $(this).hide();
            $('#profielopslaan,#profielannuleren').show();
            $('.formulierveld').removeAttr('disabled');
        }
    });
    
    $('#profielannuleren').bind({
        click: function() {
            location.reload();
        }
    });
    
    $('#profielopslaan').bind({
        click: function() {
            //$('#formulier').valid();
            valideerWachtwoord.regels();
            $('#formulier').submit();
        }
    });
    
    $('#geborenop').datepicker({dateFormat:'dd-mm-yy'});
    
    $("#formulier").validate({
        ignore: [],
        rules: {
            voornaam: {
                required: true,
                maxlength: 100
            },
            naam: {
                required: true,
                maxlength: 100
            },
            geborenop: {
                required: true,
                datum: true
            },
            email: {
                required: true,
                email: true
            }
        },
        submitHandler: function(form) {
            //form.submit();
            profiel.bijwerken();
        },
        invalidHandler: function(form,validator) {
            var aantal = validator.numberOfInvalids(); 
            if (aantal) {
                var html  = '<div class="alert alert-warning alert-dismissable">';
                    html += '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
                    html += '<h4>Fout</h4>';
                    html += '<p>Graag volgende fouten corrigeren:</p>';
                    html += '<ul>';
                    for (var i in validator.errorList) {
                        html += '<li>';                        
                        var id = validator.errorList[i]['element']['id'];
                        html += $('#' + id).parent().find('label:first').text()
                        console.log(validator.errorList[i]['element']['id'])
                        html += '</li>';
                    }
                    html += '</ul>';
                    html += '</div>';
                $('#boodschap').html(html);
                $('html,body').animate({scrollTop: 0},{duration: 500});
            }
        }
    });
    
    $('#boodschap').on('click','#profielReloadPage',function(e){
        e.preventDefault();
        location.reload();
    });
    
    $('#profielAdres').on('click','#H_adres,#D_adres,#W_adres',function(){
        if ($(this).prop('checked')) {
            $('#' + $(this).attr('id') + 'Wrapper').removeClass('hidden');
        } else {
            $('#' + $(this).attr('id') + 'Wrapper').addClass('hidden');
            $('#' + $(this).attr('id') + 'Wrapper').find('input:text').val('');
            if ($(this).attr('id') == 'H_adres') {
                $('#D_adres').prop('checked',false);
                $('#D_adresWrapper').addClass('hidden');
            }
        }
        valideerAdres.regels();        
    });
});

var valideerAdres = {};

valideerAdres.soorten = ['H','W','D'];

valideerAdres.velden = {
    'straat':   {required: true, minlength: 2},
    'nummer':  {required: true},
    'gemeente': {required: true, minlength: 2},
    'postcode': {required: true, minlength: 4}    
};

valideerAdres.regels = function() {
    for (var i in valideerAdres.soorten) {
        soort = valideerAdres.soorten[i];
        adres = ['#',soort,'_adres'].join('');
        zet = $(adres).prop('checked')?true:false;
        valideerAdres.setRegels(soort,zet);
    }
};

valideerAdres.setRegels = function(soort,zet) {
    $('#formulier').validate();
    for (var i in valideerAdres.velden) {
        regels = valideerAdres.velden[i];
        veld = ['#',soort,'_',i].join('');
        if (zet) {
            $(veld).rules('add',regels);
        } else {
            $(veld).rules('remove');
        }
    }
};

var valideerWachtwoord = {};

valideerWachtwoord.regels = function() {
    $('#formulier').validate();
    var wachtwoord = $.trim($('#w8wNieuw').val());
    if (wachtwoord.length > 0) {
        $('#w8wHuidig').rules('add',{required:true});
        $('#w8wNieuw').rules('add',{paswoord:true});
        $('#w8wBevestig').rules('add',{equalTo:'#w8wNieuw'});
    } else {
        $('#w8wHuidig').rules('remove');
        $('#w8wNieuw').rules('remove');
        $('#w8wBevestig').rules('remove');
    }
};